package exception;

import java.io.FileOutputStream;
import java.io.IOException;

/**
 * JDK7之后，java提供了新的特性:自动关闭特性
 * 可以在异常处理机制中更优雅的关闭如IO的操作
 * @see exception.FinallyDemo2
 */
public class AutoCloseableDemo {
    public static void main(String[] args) {
        try(
            /*
                该语法只是编译器认可，最终编译器会将代码改为如FinallyDemo2的样子
                注意:只有实现了AutoCloseable接口的类才可以在try()中声明并初始化。
                所有的流都实现了该接口。
             */
            //在try()中定义流并初始化
            FileOutputStream fos = new FileOutputStream("fos.dat");
        ) {
            //快捷键添加try-catch:ctrl+alt+t
            fos.write(1);
        } catch (IOException e) {
            e.printStackTrace();
        }//无需编写finally
    }
}
